import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
import { StorageRoutingModule } from './storage-routing.module';

// PrimeNG Modules
import { TableModule } from 'primeng/table';
import { ButtonModule } from 'primeng/button';
import { DialogModule } from 'primeng/dialog';
import { InputTextModule } from 'primeng/inputtext';
import { CalendarModule } from 'primeng/calendar';
import { DropdownModule } from 'primeng/dropdown';
import { FileUploadModule } from 'primeng/fileupload';
import { ToastModule } from 'primeng/toast';
import { ConfirmDialogModule } from 'primeng/confirmdialog';
import { MessageService } from 'primeng/api';
import { ConfirmationService } from 'primeng/api';
import { DynamicDialogModule } from 'primeng/dynamicdialog';
import { DialogService } from 'primeng/dynamicdialog';
import { CheckboxModule } from 'primeng/checkbox';

// Components
import { InboundManageComponent } from './inbound-manage/inbound-manage.component';
import { ProductEditDialogComponent } from './inbound-manage/product-edit-dialog.component';
import { ProductSelectModalComponent } from './inbound-manage/product-select-modal.component';
import { OrderSelectDialogComponent } from './inbound-manage/order-select-dialog.component';
import { DocumentStatusPipe } from './inbound-manage/document-status.pipe';

@NgModule({
  imports: [
    CommonModule,
    FormsModule,
    ReactiveFormsModule,
    StorageRoutingModule,
    TableModule,
    ButtonModule,
    DialogModule,
    InputTextModule,
    CalendarModule,
    DropdownModule,
    FileUploadModule,
    ToastModule,
    ConfirmDialogModule,
    DynamicDialogModule,
    CheckboxModule,
    InboundManageComponent,
    ProductEditDialogComponent,
    ProductSelectModalComponent,
    OrderSelectDialogComponent,
    DocumentStatusPipe
  ],
  providers: [
    MessageService,
    ConfirmationService,
    DialogService
  ]
})
export class StorageModule { }